package br.ucb.antares.bean;

import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ManagedBean;

import br.ucb.antares.HIB.ProdutoHIB;
import br.ucb.antares.HIB.VendaHIB;
import br.ucb.antares.entidade.Produto;
import br.ucb.antares.entidade.Venda;
import br.ucb.antares.interfaces.Bean;
import br.ucb.antares.log4j.VendaLog;
@ManagedBean
public class VendaBean implements Bean<Venda>{
	private Venda venda;
	private VendaHIB vendaHIB;
	private List<Venda> vendas;
	private VendaLog vendaLog = new VendaLog();
	private Produto produto;
	
	

	public VendaBean() {
		produto = new Produto();
		setVenda(new Venda());
		setVendaHIB(new VendaHIB());
		setVendas(new ArrayList<Venda>());
	}
	public Venda getVenda() {
		return venda;
	}
	public void setVenda(Venda venda) {
		this.venda = venda;
	}
	public VendaHIB getVendaHIB() {
		return vendaHIB;
	}
	public void setVendaHIB(VendaHIB vendaHIB) {
		this.vendaHIB = vendaHIB;
	}
	public List<Venda> getVendas() {
		return vendas;
	}
	public void setVendas(List<Venda> vendas) {
		this.vendas = vendas;
	}
	
	@Override
	public String salvar() {
		ProdutoHIB produtoHIB = new ProdutoHIB();
		System.out.println(this.produto);
		getVenda().setIdProduto(getProduto());
		Produto produto = produtoHIB.consultar(getVenda().getIdProduto().getIdProduto());
		produto.setQnt(produto.getQnt()  - 1);
		produtoHIB.salvar(produto);
		
		
		setVendaHIB(new VendaHIB());
		getVendaHIB().salvar(getVenda());
		vendaLog.logCadastrar(venda);
		return "listForn.xhtml";
	}

	@Override
	public String excluir() {
		setVendaHIB(new VendaHIB());
		getVendaHIB().excluir(getVenda());
		vendaLog.logExcluir(venda);
		return "listForn.xhtml";
	}

	@Override
	public String listar() {
		setVendaHIB(new VendaHIB());
		setVendas(getVendaHIB().listar());
		return "listForn.xhtml";
	}

	@Override
	public String consultar() {
		setVendaHIB(new VendaHIB());
		setVenda(getVendaHIB().consultar(getVenda().getId()));
		return "listForn.xhtml";
	}
	
	public int getQuantidade(){
		return getVendas().size();
	}
	public Produto getProduto() {
		return produto;
	}
	public void setProduto(Produto produto) {
		this.produto = produto;
	}
	
	
}
